#include <iostream>
using namespace std;

class Shape {
public:
  virtual void foo() {}
};

class Circle : public Shape {
  int dummy[8]; // 使派生类与基类的大小不同
public:
  virtual void foo() override {
    printf("Circle\n");
  }
};

int main() {
  Circle vc[5];
  Shape* ps = vc;
  ps[1].foo(); // ps[1]按Shape对象大小调整偏移量，指向了错误的位置
}